package com.roadmap.client.module.access;

import com.roadmap.common.BaseEntity;
import com.roadmap.exception.ActionNotSupportedException;
import com.roadmap.exception.NotAuthoriedException;
import com.roadmap.exception.NullObjectException;

public interface IAccessChecker {
	public boolean canBeViewed() throws NullObjectException,
			NotAuthoriedException, ActionNotSupportedException;

	public boolean canBeCreated() throws NullObjectException,
			NotAuthoriedException, ActionNotSupportedException;

	public boolean canBeEdited() throws NullObjectException,
			NotAuthoriedException, ActionNotSupportedException;

	public boolean canBeDeleted() throws NullObjectException,
			NotAuthoriedException, ActionNotSupportedException;

	public boolean canBeCopied() throws NullObjectException,
			NotAuthoriedException, ActionNotSupportedException;

	public boolean canBeCanceled() throws NullObjectException,
			ActionNotSupportedException, NotAuthoriedException;

	public boolean canBeCompleted() throws NullObjectException,
			ActionNotSupportedException, NotAuthoriedException;

	public void setAspirantId(String aspId);

	public String getAspirantId();

	public void setBaseEntity(BaseEntity entity);

	public BaseEntity getBaseEntity();

	public boolean isLoggedOn(String aspirantId);

	public boolean canUserAccess() throws NotAuthoriedException;

}
